/* 
包含的是用户搜索模块相关的接口请求函数
内部调用axios发请求, 返回值是promise
*/

import axios from "axios";
import type { ReqSearchUsersResponse } from "./model/userSearchTypes";
import type { AxiosResponse } from "axios";

// 搜索用户列表的接口请求函数
export function reqSearchUsers(searchName: string) {
  /* 
  get<T = any, R = AxiosResponse<T>, D = any>
    AxiosResponse<T = any>  {
      data: T;  // 这就是响应体数据, 它使用的就是get的第一个泛型类型
      status: number;
      statusText: string;
    }
  指定响应体数据, 也就是response.data的数据类型
    方式一: get<ReqSearchUsersResponse>
    方式二: get<any, AxiosResponse<ReqSearchUsersResponse>>
  */
  // return axios.get<ReqSearchUsersResponse>('https://api.github.com/search/users', {
  return axios.get<any, AxiosResponse<ReqSearchUsersResponse>>('https://api.github.com/search/users', {
    params: {
      q: searchName
    }
  })
}